#include <stdio.h>
#include <math.h>

int is_prime(int n);

int main(void)
{
    int i = 0;
    int count = 0;

    for (i = 100; i <= 200; ++i)
    {
        //判断i是否是素数
        if (is_prime(i))
        {
            printf("%d ", i);
            ++count;
        }
    }
    printf("%d\n", count);

    return 0;
}

/*
函数内容:判断一个整数是否是素数
输入参数:被判断的数 int类型
输出参数:判断一个数是否是素数的结果
返回值:是素数返回1 不是素数返回0
*/
int is_prime(int n)
{
    int i = 0;

    for (i = 2; i <= sqrt(n); ++i)
    {
        if (n % i == 0)
        {
            return 0;
        }
    }
    return 1;
}

// #include <stdio.h>
// #include <string.h>

// int main(void)
// {
//     char arr1[] = "HelloWorld";
//     char arr2[] = "";

//     strcpy(arr2, arr1);
//     printf("%s\n", arr2);

//     return 0;
// }

// #include <stdio.h>
// #include <string.h>

// int main(void)
// {
//     char arr[] = "Hello world!";

//     memset(arr, '*', 5);
//     printf("%s\n", arr);

//     return 0;
// }

// #include <stdio.h>

// int GetMax(int a, int b);

// int main(void)
// {
//     int a = 0;
//     int b = 0;  
//     int max1, max2, max3, max4;

//     scanf("%d %d", &a, &b);
//     max1 = GetMax(a, b);                //变量
//     max2 = GetMax(a, 5);                //常量
//     max3 = GetMax(a, 7-4);              //表达式
//     max4 = GetMax(a, GetMax(5,b));      //函数表达式

//     return 0;
// }

// /*
// 函数内容:找出两个整数中的最大值
// 输入参数:两个整数
// 返回参数:两个数的最大值
// 返回值:整型
// */
// int GetMax(int a, int b)
// {
//     return (a>b) ? a : b;   
// }

// #include <stdio.h>

// void Swap(int *a, int *b);

// int main(void)
// {
//     int a = 0;
//     int b = 0;

//     scanf("%d %d", &a, &b);
//     Swap(&a, &b);
//     printf("%d %d", a, b);

//     return 0;
// }

// void Swap(int *a, int *b)
// {
//     int temp = *a;
//     *a = *b;
//     *b = temp;
// }

// #include <stdio.h>

// int IsLeapYear(int year);

// int main(void)
// {
//     int year = 0;
//     int count = 0;

//     for (year = 1000; year < 3000; ++year)
//     {
//         if (IsLeapYear(year))
//         {
//             ++count;
//             printf("%d ", year);
//             if (count % 10 == 0)
//             {
//                 printf("\n");
//             }
//         }
//     }

//     return 0;
// }

// /*
// 函数内容:判断一个年份是不是闰年
// 输入参数:被判断的年份
// 输出参数:是否是闰年的结果
// 返回值:是闰年返回1 不是返回0
// */
// int IsLeapYear(int year)
// {
//     return (((year%4==0) && (year%100!=0)) || (year%400==0));
// }

// #include <stdio.h>

// int BinarySearch(int arr[], int key, int size);

// int main(void)
// {
//     int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//     int size = sizeof(arr) / sizeof(arr[0]);
//     int key = 5;
//     int result = 0;

//     result = BinarySearch(arr, key, size);
//     printf("%d\n", result);

//     return 0;
// }

// /*
// 函数内容:在一个整型有序数组查找一个数,查找到返回下标,没有则返回-1
// 输入参数:整型数组名,被查找的数,数组的大小
// 返回参数:查找的结果
// 返回值:查找到返回下标,没有则返回-1
// */
// int BinarySearch(int arr[], int key, int size)
// {
//     int left = 0;
//     int right = size - 1;
//     int mid = 0;

//     while (left <= right)
//     {
//         mid = left + (right-left) / 2;
//         if (arr[mid] > key)
//         {
//             left = mid + 1;
//         }
//         else if (arr[mid] < key)
//         {
//             right = mid - 1;
//         }
//         else 
//         {
//             return mid;
//         }
//     }
//     return -1;
// }

/*
    实现一个函数，打印乘法口诀表，口诀表的行数和列数自己指定

    如：输入9，输出9*9口诀表，输出12，输出12*12的乘法口诀表。
*/

// #include <stdio.h>

// void PrintExcel(int n);

// int main(void)
// {
//     int n = 0;

//     scanf("%d", &n);
//     PrintExcel(n);

//     return 0;
// }

// /*
// 函数内容:打印n*n乘法口诀表
// 输入参数:整型n
// 输出参数:无
// 返回值:无
// */
// void PrintExcel(int n)
// {
//     int i = 0;
//     int j = 0;

//     for (i = 1; i <= n; ++i)
//     {
//         for (j = 1; j <= i; ++j)
//         {
//             printf("%2d*%2d=%3d  ", j, i, i*j);
//         }
//         printf("\n");
//     }
// }

